Computer simulations that provide mathematical models of a circuit design are typically used in electronics design automation. The circuit model allows a designer to verify or manipulate the design parameters to identify and solve design problems before proceeding with the cost and effort of building a physical embodiment.
A simulation generates source data that is characteristic of electronic components. This source data is digitally stored as a plurality of data sample points. The simulation may define a pre-defined library of modules for transistor level characteristics, such as timing and propagation delay. A large number of transistors and other electrical components for a simulated circuit may be grouped into function blocks known as cells. These function cell blocks allow the designer to work at a higher level than at the transistor level.
In one design automation example, the designer uses design automation software tools to interconnect the terminals of devices or sub-circuits selected from a device library as required to form a circuit design schematic. The device library contains digital data for producing representations of common devices, and further contains cell characterization data for sub-circuits or function cell blocks. A device or sub-circuit selection from the device library allows a representation of the selected device or sub-circuit to be displayed on the screen of a display unit.
Typically, in order for the design automation software tools to use the cell characterization data source from the simulation, the data sources are reduced or compressed into smaller data subsets that require less storage and less processing bandwidth. These data subsets are used in model tables for the device library. The design tools perform a simulation of the newly created circuit design by interpolating the subset data points to recreate an approximation to the cell characterization data source. Poorly chosen subset data points can cause an unacceptably large interpolation error that detrimentally effects the accuracy of the simulation. The error attributable to poorly chosen data points tends to be aggravated when the number of data points in the data subset is relatively small.
The following example illustrates a conventional method for characterizing a cell with a data subset. The switching speed of a cell is dependent on the number of cells driven by that cell. Therefore, the cell is characterized by simulating the cell as it drives many different loads. Conventionally, a standard load is equivalent to the input of one cell. The resulting data is collected and used in a simulation model for the cell. These models are able to be used, for example, in higher level simulations that evaluate the performance of all the cells in a chip to ensure that the chip is able to operate at the desired speed.
In further development of this example, a buffer cell is characterized with a number of loads on its output. An output load of “1” is the minimum load possible and, for this example, an output load of “32” is the maximum load allowable before the output is slowed down to a point at which it breaks the maximum ramp time rule set for the library in question. Therefore, the bounds of the characterization simulation are 1 load and 32 loads. Conventionally, the points in between these bounds is determined using engineering judgment and educated guesses. Conventionally, for a target model table size of 6 loads, a geometrically increasing series of 1, 2, 4, 8, 16 and 32 may be chosen because the rate of change of delay is greater for small loads. As such, the buffer circuit in this example is characterized with 1, 2, 4, 8, 16, and 32 loads on its output. The geometrically increasing series provides more data points for smaller loads and fewer data points for larger loads. However, this geometrically increasing series still may contain unacceptably large interpolation errors between the six-load data subset and the data source.
Therefore, there is a need in the art to provide a method and system that overcomes these problems by reducing data into a subset in such a way as to minimize interpolation error. Particularly, there is a need for improving the accuracy of a modeled device by selecting best fit points as the characteristic sample for the data subset used in the simulation model.